package day11.fanxingdemo;

import java.util.ArrayList;
/*
* 基本类型的封装类只有两个特殊的类型：Integer和Character，int,char
* 其他都是基本类型的首字母大写的，比如long，float，double，boolean，short，byte
*记住封装类的对象他直接比的是地址
* 、 //总结一下防止自己混乱就是，如果自己要转的跟整数有关系就用Integer反正他有tostring和parseInt
*
* */
public class fanxingdemo3 {
    public static void main(String[] args) {
        ArrayList<Integer> list = new ArrayList<Integer>();
        list.add(1);//自动装箱，int和Integer他俩的转化是自动的而且是非常丝滑的。加的是个int类型但是后台给你封装成对象了（  Integer类的实例化对象）
        //arrlist删除之后后面元素自动往前排

        Integer i = 5;
        int j = i;//自动拆箱，把Integer拆成int类型

        //手动装箱
        Integer i2=Integer.valueOf(82);//没必要 ，麻烦

      //  来看一下java对于这些封装类数值的比较
        Integer i3 = 100;
        Integer i4 = 100;
        System.out.println(i3==i4);//true，说到底，i3和i4是实例化的对象，让他俩去比，不知道怎么比，但是人家默认比的是两个地址，又因为数值是在-128到127之间，只要在这个区间，同一个数值指向的对象是一样的，地址也是一样的。
        System.out.println(i3.equals(i4));//true，但是这个是看两个数值是否相等，所以是true

        Integer i5 = 300;
        Integer i6 = 300;
        System.out.println(i5==i6);//false，因为300不在-128到127之间，两个都是重新new的 所以i5和i6不是同一个对象，地址不一样，所以false
        System.out.println(i5.equals(i6));//true



       // 封装类常用的方法就是数值和字符串的转换
//字符串转数字
        int h=Integer.parseInt("121");//当然也会有Double.parseDouble
        System.out.println(h + 11);

        //数字转字符串
        //最简单方法就是
        String h2=123+"";//加一个空字符串就自动转化了
        System.out.println(h2);

        Integer i8=66;
        String h3=i8.toString();//tostring不止是成员方法还是静态方法
        //或者
       String h4= Integer.toString(i8);

       //总结一下防止自己混乱就是，如果自己要转的跟整数有关系就用Integer反正他有tostring和parseInt




    }
}
